<?php

/**
 * reservacion_lista actions.
 *
 * @package    PhpProject1
 * @subpackage reservacion_lista
 * @author     Your name here
 * @version    SVN: $Id: actions.class.php 23810 2009-11-12 11:07:44Z Kris.Wallsmith $
 */
class reservacion_listaActions extends sfActions {

    /**
     * Executes index action
     *
     * @param sfRequest $request A request object
     */
    public function executeIndex(sfWebRequest $request) {
        $decReservacionTable = Doctrine_Query::create()
                ->select("res.*")
                ->from("DecReservacion res")
                ->where("res.res_estado = ?", "RESERVADO")
                ->orderBy("res.res_id DESC")
                ->execute();
        $this->decReservacionTable = $decReservacionTable;
    }

    public function executeFiltrar(sfWebRequest $request) {
        $inputEstado = $request->getParameter("inputEstado");
        $clienteId = $request->getParameter("clienteId");

        if ($clienteId == 0) {
            $decReservacionTable = Doctrine_Query::create()
                    ->select("res.*")
                    ->from("DecReservacion res")
                    ->where("res.res_estado = ?", "$inputEstado")
                    ->orderBy("res.res_id DESC")
                    ->execute();
        } else {
            $decReservacionTable = Doctrine_Query::create()
                    ->select("res.*")
                    ->from("DecReservacion res")
                    ->where("res.res_estado = ?", "$inputEstado")
                    ->andWhere("res.res_persona_id = ?", "$clienteId")
                    ->orderBy("res.res_id DESC")
                    ->execute();
        }

        $this->decReservacionTable = $decReservacionTable;
    }

    public function executeEditar(sfWebRequest $request) {
        $id = $request->getParameter("id");

        $decReservacion = new DecReservacion();
        $decReservacion = (object) Doctrine_Core::getTable("DecReservacion")->find($id);
        $this->decReservacion = $decReservacion;

        $decPersona = new DecPersona();
        $decPersona = (object) $decReservacion->getDecPersona();
        $this->decPersona = $decPersona;

        $decReservacionHabitacionTable = $decReservacion->getDecReservacionHabitacion();

        foreach ($decReservacionHabitacionTable as $object) {
            $decReservacionHabitacion = new DecReservacionHabitacion();
            $decReservacionHabitacion = (object) $object;

            $decHabitacion = new DecHabitacion();
            $decHabitacion = (object) $decReservacionHabitacion->getDecHabitacion();
        }
        $this->decHabitacion = $decHabitacion;

        $decEdificio = new DecEdificio();
        $decEdificio = (object) $decHabitacion->getDecEdificio();
        $this->decEdificio = $decEdificio;

        $decHabitacionTipo = new DecHabitacionTipo();
        $decHabitacionTipo = (object) $decHabitacion->getDecHabitacionTipo();
        $this->decHabitacionTipo = $decHabitacionTipo;

        /* factura detalle */

        $decFactura = new DecFactura();
        $decFacturaTable = Doctrine_Query::create()
                ->select("fac.*")
                ->from("DecFactura fac")
                ->where("fac.fac_reservacion_id = ?", $id)
                ->execute();
        foreach ($decFacturaTable as $object) {
            $decFactura = (object) $object;
        }

        $decFacturaDetalleTable = Doctrine_Query::create()
                ->select("fad.*")
                ->from("DecFacturaDetalle fad")
                ->where("fad.fad_factura_id = ?", $decFactura->getFacId())
                ->execute();

        $this->decFacturaDetalleTable = $decFacturaDetalleTable;

        /* categorias */

        $decCategoriaTable = Doctrine_Query::create()
                ->select("cat.*")
                ->from("DecCategoria cat")
                ->where("cat.cat_activo = ?", 1)
                ->execute();
        $this->decCategoriaTable = $decCategoriaTable;
    }

    public function executeSave(sfWebRequest $request) {
        $id = $request->getParameter("id");
        $inputFechaInicio = $request->getParameter("inputFechaInicio");
        $inputFechaFin = $request->getParameter("inputFechaFin");
        $inputAdultos = $request->getParameter("inputAdultos");
        $inputNinos = $request->getParameter("inputNinos");
        $inputEstado = $request->getParameter("inputEstado");

        $decReservacion = new DecReservacion();
        $decReservacion = (object) Doctrine_Core::getTable("DecReservacion")->find($id);
        $decReservacion->setResFechaEntrada($inputFechaInicio);
        $decReservacion->setResFechaSalida($inputFechaFin);
        $decReservacion->setResNumeroAdultos($inputAdultos);
        $decReservacion->setResNumeroNinos($inputNinos);
        $decReservacion->setResEstado($inputEstado);
        $decReservacion->save();

        return sfView::NONE;
    }

    public function executeGetProducts(sfWebRequest $request) {
        $id = $request->getParameter("id");

        $decFactura = new DecFactura();
        $decFacturaTable = Doctrine_Query::create()
                ->select("fac.*")
                ->from("DecFactura fac")
                ->where("fac.fac_reservacion_id = ?", $id)
                ->execute();
        foreach ($decFacturaTable as $object) {
            $decFactura = (object) $object;
        }

        $decFacturaDetalleTable = Doctrine_Query::create()
                ->select("fad.*")
                ->from("DecFacturaDetalle fad")
                ->where("fad.fad_factura_id = ?", $decFactura->getFacId())
                ->execute();

        $this->decFacturaDetalleTable = $decFacturaDetalleTable;
    }

    public function executeGetProductsFromCategory(sfWebRequest $request) {
        $id = $request->getParameter("id");

        $decProductoTable = Doctrine_Query::create()
                ->select("prd.*")
                ->from("DecProducto prd")
                ->where("prd.prd_categoria_id = ?", $id)
                ->execute();
        $this->decProductoTable = $decProductoTable;
    }

    public function executeAddNewProduct(sfWebRequest $request) {
        $id = $request->getParameter("id");
        $proId = $request->getParameter("proId");
        $cantidad = $request->getParameter("cantidad");

        $decReservacion = new DecReservacion();
        $decReservacion = (object) Doctrine_Core::getTable("DecReservacion")->find($id);

        $decProducto = new DecProducto();
        $decProducto = (object) Doctrine_Core::getTable("DecProducto")->find($proId);

        $decFactura = new DecFactura();
        $decFacturaTable = Doctrine_Query::create()
                ->select("fac.*")
                ->from("DecFactura fac")
                ->where("fac.fac_reservacion_id = ?", $id)
                ->execute();
        foreach ($decFacturaTable as $object) {
            $decFactura = (object) $object;
        }

        $decFacturaDetalle = new DecFacturaDetalle();
        $decFacturaDetalle->setFadFacturaId($decFactura->getFacId());
        $decFacturaDetalle->setFadProductoId($decProducto->getPrdId());
        $decFacturaDetalle->setFadCantidad($cantidad);
        $decFacturaDetalle->setFadSubtotal($decProducto->getPrdPrecio() * $cantidad);
        $decFacturaDetalle->save();

        return sfView::NONE;
    }

    public function executeDeleteFacturaDetalle(sfWebRequest $request) {
        $id = $request->getParameter("id");

        $decFacturaDetalle = new DecFacturaDetalle();
        $decFacturaDetalle = (object) Doctrine_Core::getTable("DecFacturaDetalle")->find($id);

        $decFacturaDetalle->delete();

        return sfView::NONE;
    }

    public function executePrint(sfWebRequest $request) {
        $this->setLayout(false);

        $id = 6;
        //$id = $request->getParameter("id");

        $decReservacion = new DecReservacion();
        $decReservacion = (object) Doctrine_Core::getTable("DecReservacion")->find($id);
        $this->decReservacion = $decReservacion;

        $decPersona = new DecPersona();
        $decPersona = (object) $decReservacion->getDecPersona();
        $this->decPersona = $decPersona;

        $decReservacionHabitacionTable = $decReservacion->getDecReservacionHabitacion();

        foreach ($decReservacionHabitacionTable as $object) {
            $decReservacionHabitacion = new DecReservacionHabitacion();
            $decReservacionHabitacion = (object) $object;

            $decHabitacion = new DecHabitacion();
            $decHabitacion = (object) $decReservacionHabitacion->getDecHabitacion();
        }
        $this->decHabitacion = $decHabitacion;

        $decEdificio = new DecEdificio();
        $decEdificio = (object) $decHabitacion->getDecEdificio();
        $this->decEdificio = $decEdificio;

        $decHabitacionTipo = new DecHabitacionTipo();
        $decHabitacionTipo = (object) $decHabitacion->getDecHabitacionTipo();
        $this->decHabitacionTipo = $decHabitacionTipo;

        /* factura detalle */

        $decFactura = new DecFactura();
        $decFacturaTable = Doctrine_Query::create()
                ->select("fac.*")
                ->from("DecFactura fac")
                ->where("fac.fac_reservacion_id = ?", $id)
                ->execute();
        foreach ($decFacturaTable as $object) {
            $decFactura = (object) $object;
        }
        $this->decFactura = $decFactura;

        $decFacturaDetalleTable = Doctrine_Query::create()
                ->select("fad.*")
                ->from("DecFacturaDetalle fad")
                ->where("fad.fad_factura_id = ?", $decFactura->getFacId())
                ->execute();

        $this->decFacturaDetalleTable = $decFacturaDetalleTable;
    }

}
